package com.galaxy.service.service.system;

import com.baomidou.mybatisplus.service.IService;
import com.galaxy.service.dto.system.resource.QueryPermissionDto;
import com.galaxy.service.entity.system.Permission;
import java.util.List;
import java.util.Map;

/**
 * 权限接口
 * @author caijinbang
 * @date 2018/10/27 18:13
 */
public interface PermissionService extends IService<Permission> {


  /**
   * 获取资源列表
   * @return
   */
  public List<Permission> list();

  /**
   * 添加资源
   * @param dto
   */
  public void add(QueryPermissionDto dto);

  /**
   * 更新资源
   * @param id
   * @param dto
   */
  public void update(String id,QueryPermissionDto dto);

  /**
   * 删除资源
   * @param id
   */
  public void remove(String id);

  /**
   * 递归查找所有的子集
   * @param resource
   */
  public void findAllChild(Permission resource);

  /**
   * 获取资源所有的父级
   * @param resource 资源
   * @param cacheMap 缓存对象
   * @param cacheMap2 缓存对象
   * @return 资源
   */
  Permission getResourceAllParent(Permission resource,Map<String,Permission> cacheMap,
      Map<String,Permission> cacheMap2);
}
